package smlab.utils
{
	import flash.external.ExternalInterface;
	import flash.net.URLRequest;
	import flash.net.navigateToURL;
	import flash.utils.getTimer;
	
	/**
    * Author: ATHER Shu 2008.9.26
    * NetUtil类: 一些直接调用浏览器简单js的实用类
    * 功能：
    * 1.显示swf所在页面也就是浏览器地址栏地址 getPageUrl
    * 3.直接弹出浏览器提示 explorerAlert
    * 4.获取swf所在页面的编码方式 getpageEncoding
    * 5.获取浏览器类型 getBrowserType
    * 6.直接运行js代码 eval
    * http://www.asarea.cn
    * ATHER Shu(AS)
    */
	public class NetUtil
	{
		
        /**
         * 获取当前页面url
         * @return 
         * 
         */
        public static function getPageUrl():String
        {
            //在ie中如果没有用object classid或者没有赋id属性，而直接用embed，该方法会失效！
            var pageurl:String = ExternalInterface.call("eval", "window.location.href");
            if(pageurl == null)
                pageurl = "none";//"not in a page or js called fail";
            return pageurl;
        }
        
        /**
         * 通过js弹出浏览器提示alert
         * @param msg
         * 
         */
        public static function explorerAlert(msg:String):void
        {
            navigateToURL(new URLRequest("javascript:alert('"+msg+"')"), "_self");
        }
        
        /**
         * 获取swf所在页面编码方式
         * @return 
         * 
         */        
        public static function getpageEncoding():String
        {
            //IE下用:document.charset
            //Firefox下用:document.characterSet
            var pageencoding:String = ExternalInterface.call("eval", "document.charset");
            if(pageencoding == null)
                pageencoding = ExternalInterface.call("eval", "document.characterSet");
            //
            if(pageencoding == null)
                pageencoding = "NONE";//can't get the page encoding
            return pageencoding.toUpperCase();
        }
        
        /**
         * 获取浏览器类型
         * @return 
         * 
         */        
        public static function getBrowserType():String
        {
            //var browsertype:String = ExternalInterface.call("eval", "navigator.appName");
            var browsertype:String = ExternalInterface.call("eval", "navigator.userAgent");
            return (browsertype ? browsertype:"NONE");
        }
        
        /**
         * 直接运行js语句，eval
         * @param code
         * @return 
         * 
         */        
        public static function eval(code:String):Object
        {
            var rtn:Object = ExternalInterface.call("eval", code);
            return rtn;
        }
        
        /**
		 * 跟在 URL 后面的随机数（一般用于避免缓存）
		 * @return 
		 * 
		 */
		public static function getNoCacheRandomNum():String{
			return "?"+getTimer()+int(Math.random()*10000);
		}
	}
}